﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FJASPX.Framwork.Model;
using FJASPX.Framwork.Query;
using NHibernate.Criterion;

namespace FJASPX.Framwork.Service
{
    public interface IEntityPagedQueryable<T> where T : Entity
    {
        Page PagedQuery(T example, int pageNo, int pageSize);
        Page PagedQuery(int pageNo, int pageSize, ICriterion[] criterion);
        Page PagedQuery(int pageNo, int pageSize, string orderBy, bool isAsc, ICriterion[] criterion);
        Page PagedQuery(string hql, int pageNo, int pageSize, object[] values);
        IList<T> PagedQuery(ICriterion expression, List<Order> order,
         int pageIndex, int pageSize, out long recordCount);
        IList<T> PagedQuery(List<ICriterion> expressions, List<Order> order,
         int pageIndex, int pageSize, out long recordCount);
    }
}
